package cn.itcast.nems.order.dao.dataobject;

import cn.itcast.nems.studentrecord.dao.dataobject.ApprovalFormQueryModel;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 优惠单DO
 *
 * @author ChangLu.Gao
 * @version v1.0
 * @program nems-server
 * @description
 * @date 2023/12/08 15:19
 */
@Data
public class JournalDiscountDO extends ApprovalFormQueryModel {
    /**
     * 优惠单ID集合
     */
    private List<String> ids;
    /**
     * 调价单ID
     */
    private String id;
    /**
     * 业务实际办理日期
     */
    private LocalDateTime bizDate;
    /**
     * 优惠规则ID;原EMS管理
     */
    private String discountId;
    /**
     * 优惠规则名称;原EMS管理
     */
    private String discountName;
    /**
     * 优惠券类型;原EMS管理的；枚举值：金额|CASH、折扣|DISCOUNT。注：来自于优惠规则的类型
     */
    private String discountType;
    /**
     * 优惠金额或折扣
     */
    private BigDecimal discountValue;
    /**
     * 优惠券规则；JSON形式存优惠券规则明细
     */
    private String discountRule;
    /**
     * 业务线
     */
    private String businessLineId;
    /**
     * 业务线名称
     */
    private String businessLineName;
    /**
     * 申请人数
     */
    private Integer quantity;
    /**
     * 学员数量(下限)用于查询
     */
    private Integer minQuantity;
    /**
     * 学员数量(上限)用于查询
     */
    private Integer maxQuantity;
    /**
     * 状态;枚举值：草稿｜DRAFT、待审批｜PENDING、审批中｜APPROVING、审批未通过｜REJECTED、已完成｜FINISHED
     */
    private String state;
    /**
     * 备注
     */
    private String remark;
    //    /**
    //     * 创建人邮箱
    //     */
    //    private String createdBy;
    /**
     * 创建人姓名
     */
    private String createdByName;
    /**
     * 创建时间
     */
    private LocalDateTime createdDatetime;
    /**
     * 创建时间范围, 起始, 用于查询
     */
    private LocalDateTime minCreatedDatetime;
    /**
     * 创建时间范围, 终止, 用于查询
     */
    private LocalDateTime maxCreatedDatetime;
    /**
     * e2_approval_form表ID
     */
    private String formId;
    /**
     * 状态;枚举值：草稿｜DRAFT、待审批｜PENDING、审批中｜APPROVING、审批未通过｜REJECTED、已完成｜FINISHED
     */
    private List<String> excludeStates;
    /**
     * 待我审批的凭单Id集合
     */
    private List<String> waitApprovalJournalIds;
    /**
     * 我审批过的凭单ID集合
     */
    private List<String> myApprovedJournalIds;
    /**
     * category：1：审批）2：知会）
     */
    private Integer category ;
}
